rm(list = ls())
# Use pacman to check whether packages are installed, if not load
if (!require("pacman")) install.packages("pacman")
library(pacman)
# Unload all package to begin in a session with only base packages
pacman::p_unload("all")
# Install packages
pacman::p_load(
here,
skimr,
survival,
survminer,
rms,
cmprsk,
riskRegression,
mstate,
pseudo,
pec,
plotrix,
knitr,
splines,
kableExtra,
flextable,
gtsummary,
boot,
tidyverse,
rsample,
gridExtra,
webshot,
patchwork,
survival,
ggsci,
cowplot,
scales,
patchwork,
labelled,
glue,
dcurves,
broom,
downlit,
xml2,
gghalves,
devtools,
htmltools,
gghalves,
ggtext,
DiagrammeR,
gt,
janitor,
VIM,
PerformanceAnalytics,
mice,
rms,
naniar,
DescTools,
gtools,
ggExtra,
furrr,
future,
ggmice,
parallel,
tictoc,
rio,
tidymodels
)
if (!require("impstep")) remotes::install_github("bgravesteijn/impstep", force = TRUE)
if (!require("smplot2")) devtools::install_github('smin95/smplot2', force = TRUE)
library(impstep)6 - Validacion de EcuacioneS KFRE Recalibradas en datos imputados
1 Code to reproduce results of the manuscript ‘Kidney Failure Prediction: Multicenter External Validation of the KFRE Model in Patients with CKD Stages 3-4 in Peru’
1.1 Introduction
This document presents the code and results of the main analysis shown in the article.
1.2 Setup
1.2.0.1 Funciones
source(here("Code", "source", "kfre_pi.R"))
source(here("Code", "source", "kfre_pr.R"))
source(here("Code", "source", "oe_ratio.R"))
source(here("Code", "source", "calibration_intercept.R"))
source(here("Code", "source", "calibration_slope.R"))
source(here("Code", "source", "auc.R"))
source(here("Code", "source", "auc_brier_boot.R"))
source(here("Code", "source", "validate.mids.R"))
source(here("Code", "source", "pool.validate.mids.R"))
source(here("Code", "source", "pool.auc.mids.R"))
source(here("Code", "source", "process_imp_cal_plot.R"))
source(here("Code", "source", "predict.mira.R"))
source(here("Code", "source", "performance_measures.R"))
source(here("Code", "source", "tidy_performance_stack.R"))
source(here("Code", "source", "tidy_pool.R"))
source(here("Code", "source", "process_imp_cal_plot2.R"))
source(here("Code", "source", "print_equation.R")) 1.2.1 Importar datos
Las ecuaciones originales se muestran a continuacion:
eq_kfre_original2y <- data.frame(
vars = c("age", "male", "eGFR", "logACR"),
coefs = c(-0.2201, 0.2467, -0.5567, 0.4510),
scale = c(10, 1, 5, 1),
center = c(7.036, 0.5642, 7.222, 5.137)
)
st02y <- 0.9832
eq_kfre_original5y <- data.frame(
vars = c("age", "male", "eGFR", "logACR"),
coefs = c(-0.2201, 0.2467, -0.5567, 0.4510),
scale = c(10, 1, 5, 1),
center = c(7.036, 0.5642, 7.222, 5.137)
)
st05y <- 0.9365- A 2 anios:
print_equation(eq_kfre_original2y, st02y)\[1 - 0.9832^{exp(- 0.2201 \times (age / 10 - 7.036) + 0.2467 \times (male / 1 - 0.5642) - 0.5567 \times (eGFR / 5 - 7.222) + 0.451 \times (logACR / 1 - 5.137))}\]
- A 5 anios:
print_equation(eq_kfre_original2y, st02y)\[1 - 0.9832^{exp(- 0.2201 \times (age / 10 - 7.036) + 0.2467 \times (male / 1 - 0.5642) - 0.5567 \times (eGFR / 5 - 7.222) + 0.451 \times (logACR / 1 - 5.137))}\]
Las nuevas sobrevidas basales y los factores de recalibracion de los coeficientes de las ecuaciones recalibradas, dependiendo del metodo usado, se muestran a continuacion
recal_loads <- import(here("Data", "Tidy", "equations", "recal_loads.rds"))
recal_loads |>
kbl() |>
kable_classic()| metodo | year | sobrev_recal | fc_coef |
|---|---|---|---|
| A | 2 | 0.9766676 | 1.0000000 |
| A | 5 | 0.9496968 | 1.0000000 |
| B | 2 | 0.9624290 | 0.7405622 |
| B | 5 | 0.9241750 | 0.7405622 |
| C | 2 | 0.9772796 | 1.0000000 |
| C | 5 | 0.9537293 | 1.0000000 |
| D | 2 | 0.9639901 | 0.7405622 |
| D | 5 | 0.9328086 | 0.7405622 |
1.3 Configurar cores para parallel processing
n_cores <- detectCores()
n_cores <- 3
# Evaluate futures in parallel - max of two workers to avoid hogging resources
future::plan("multisession", workers = n_cores)1.4 Set some constants
seed <- 2014
primary_event <- 1
imputs <- 1011.5 Importar datos
data_impA <- readRDS(here::here("Data", "Tidy", "data_impA.rds"))
imp.datosA <- complete(data_impA, action = "long", include = TRUE) |>
filter(.imp != 0) |>
filter(.imp < imputs)
imp.datosA2 <- imp.datosA 1.6 Metodo A: Reestimar riesgo basal usando Cox
source(here("Code", "source", "kfre_pi.R"))
source(here("Code", "source", "kfre_pr.R"))
source(here("Code", "source", "oe_ratio.R"))
source(here("Code", "source", "calibration_intercept.R"))
source(here("Code", "source", "calibration_slope.R"))
source(here("Code", "source", "auc.R"))
source(here("Code", "source", "auc_brier_boot.R"))
source(here("Code", "source", "validate.mids.R"))
source(here("Code", "source", "pool.validate.mids.R"))
source(here("Code", "source", "pool.auc.mids.R"))
source(here("Code", "source", "process_imp_cal_plot.R"))
source(here("Code", "source", "predict.mira.R"))
source(here("Code", "source", "performance_measures.R"))
source(here("Code", "source", "tidy_performance_stack.R"))
source(here("Code", "source", "tidy_pool.R"))
source(here("Code", "source", "process_imp_cal_plot2.R"))
source(here("Code", "source", "print_equation.R")) df_recal_metA <- import(here("Data", "Tidy", "equations", "df_recal_modA.rds"))
df_recal_metA2y <- df_recal_metA |>
filter(year == 2) |>
select(-year) |>
rename(st0_imp2y = st0_imp,
fc_coef_imp2y = fc_coef_imp)
df_recal_metA5y <- df_recal_metA |>
filter(year == 5) |>
select(-year) |>
rename(st0_imp5y = st0_imp,
fc_coef_imp5y = fc_coef_imp)
rm(df_recal_metA)
imp.datosA <- imp.datosA2 |>
left_join(df_recal_metA2y, by = ".imp") |>
left_join(df_recal_metA5y, by = ".imp") |>
mutate(eventdf = factor(eventd),
risk2y = 1 - st0_imp2y ^ exp(fc_coef_imp2y * kfre_pi(imp.datosA2)),
risk5y = 1 - st0_imp5y ^ exp(fc_coef_imp5y * kfre_pi(imp.datosA2))) |>
select(.imp, .id, time, eventd, eventdf, risk2y, risk5y)
rm(df_recal_metA2y, df_recal_metA5y)head(imp.datosA)1.6.1 Calibration and Discrimination Measures
future::plan("multisession", workers = n_cores)
results_stack3a4_2y <- tidy_performance_stack(imp.datosA,
horizon = 2,
primary_event = 1,
pred = "risk2y",
seed = seed,
n_cores = n_cores)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 3764208 201.1 7207968 385.0 7207968 385.0
Vcells 111756686 852.7 328868831 2509.1 328842219 2508.9
rio::export(results_stack3a4_2y , here("Data", "Tidy",
"res_valext_kfre_stack3a4_2y_metA.rds"))
future::plan("multisession", workers = n_cores)
results_stack3a4_5y <- tidy_performance_stack(imp.datosA,
horizon = 5,
primary_event = 1,
pred = "risk5y",
seed = seed,
n_cores = n_cores)
rio::export(results_stack3a4_5y, here("Data", "Tidy",
"res_valext_kfre_stack3a4_5y_metA.rds"))
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 3770181 201.4 7207968 385.0 7207968 385.0
Vcells 111774031 852.8 328868831 2509.1 328842219 2508.9
res_pool1 <- tidy_pool(results_stack3a4_2y)
res_pool1 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0252035 | NaN | NaN | NA | NaN | 0.0000000 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0273046 | 0.0254293 | 0.0291799 | 0.0000000 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | 0.0800980 | 0.0099412 | 0.1502547 | 0.0252434 | 0.0012279 | 0.0000527 | 0.0012811 | 30030 | 19154.845 | 0.0433783 | 0.0415748 | 0.0001022 | 30031 |
| OE difference | 0.0021011 | 0.0001913 | 0.0040109 | 0.0310655 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 21068.100 | 0.0371016 | 0.0357743 | 0.0000932 | 30031 |
| Calibration Intercept | -0.4005583 | -0.5323005 | -0.2688161 | 0.0000000 | 0.0034786 | 0.0010230 | 0.0045118 | 30030 | 1745.445 | 0.2970238 | 0.2290041 | 0.0010129 | 30031 |
| Calibration Slope | -0.3778972 | -0.4304318 | -0.3253627 | 0.0000000 | 0.0005392 | 0.0001764 | 0.0007173 | 30029 | 1498.875 | 0.3303551 | 0.2483210 | 0.0011663 | 30031 |
| Logit AUC | 2.2408323 | 2.1134404 | 2.3682242 | 0.0000000 | 0.0035868 | 0.0006288 | 0.0042219 | 30030 | 3735.045 | 0.1770471 | 0.1504163 | 0.0004948 | 30031 |
| Brier | 0.0239139 | 0.0223573 | 0.0254704 | 0.0000000 | 0.0000006 | 0.0000001 | 0.0000006 | 30030 | 8457.616 | 0.0987858 | 0.0899045 | 0.0002258 | 30031 |
res_pool2 <- tidy_pool(results_stack3a4_5y)
res_pool2 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0453388 | NaN | NaN | NA | NaN | 0.0000002 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0476187 | 0.0450853 | 0.0501521 | 0.0000000 | 0.0000017 | 0.0000000 | 0.0000017 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | 0.0490997 | -0.0068232 | 0.1050225 | 0.0852733 | 0.0007368 | 0.0000763 | 0.0008139 | 30030 | 7847.022 | 0.1046463 | 0.0947329 | 0.0002427 | 30031 |
| OE difference | 0.0022799 | -0.0003715 | 0.0049313 | 0.0919136 | 0.0000017 | 0.0000002 | 0.0000018 | 30030 | 8878.942 | 0.0950871 | 0.0868306 | 0.0002154 | 30031 |
| Calibration Intercept | -0.3139026 | -0.4158364 | -0.2119688 | 0.0000000 | 0.0019600 | 0.0007323 | 0.0026996 | 30030 | 1243.766 | 0.3773411 | 0.2739634 | 0.0013844 | 30031 |
| Calibration Slope | -0.3755688 | -0.4164766 | -0.3346610 | 0.0000000 | 0.0003190 | 0.0001147 | 0.0004348 | 30029 | 1311.106 | 0.3632975 | 0.2664844 | 0.0013192 | 30031 |
| Logit AUC | 2.0545824 | 1.9535722 | 2.1555925 | 0.0000000 | 0.0022533 | 0.0003970 | 0.0026543 | 30030 | 3706.552 | 0.1779701 | 0.1510820 | 0.0004984 | 30031 |
| Brier | 0.0383330 | 0.0362386 | 0.0404274 | 0.0000000 | 0.0000010 | 0.0000002 | 0.0000011 | 30030 | 4481.016 | 0.1563455 | 0.1352066 | 0.0004159 | 30031 |
tab_res_2y <- res_pool1 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "2 years")
tab_res_5y <- res_pool2 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "5 years")
tab_res0 <- tab_res_2y |>
bind_rows(tab_res_5y)
tab_res0 |>
as_grouped_data(groups = "year") |>
as_grouped_data(groups = "grupo") |>
flextable::as_flextable(hide_grouplabel = TRUE) |>
autofit() |>
set_header_labels(
year = "Time horizon",
term = "Performance measure",
measures = "Method A"
) |>
bold(j = 1) |>
set_caption("Table. Performance measures of KFRE in the external dataset of patients with CKD Stages 3a-4") |>
theme_booktabs() |>
bold(bold = TRUE, part = "header") -> table_perf_final
table_perf_final %>%
flextable::save_as_docx(path = here("Tables/Table_Imputed_Performance_metA.docx"))
table_perf_finalTime horizon | Performance measure | Method A |
|---|---|---|
2 years | ||
Calibration | ||
Average predicted risk | 2.52% | |
Overall observerd risk | 2.73% (2.54% to 2.92%) | |
OE ratio | 1.08 (1.01 to 1.16) | |
OE difference | 0.21% (0.02% to 0.4%) | |
Calibration Intercept | -0.4 (-0.53 to -0.27) | |
Calibration Slope | -0.38 (-0.43 to -0.33) | |
Discrimination | ||
AUC | 0.9 (0.89 to 0.91) | |
Overall performance | ||
Brier | 0.02 (0.02 to 0.03) | |
5 years | ||
Calibration | ||
Average predicted risk | 4.53% | |
Overall observerd risk | 4.76% (4.51% to 5.02%) | |
OE ratio | 1.05 (0.99 to 1.11) | |
OE difference | 0.23% (-0.04% to 0.49%) | |
Calibration Intercept | -0.31 (-0.42 to -0.21) | |
Calibration Slope | -0.38 (-0.42 to -0.33) | |
Discrimination | ||
AUC | 0.89 (0.88 to 0.9) | |
Overall performance | ||
Brier | 0.04 (0.04 to 0.04) | |
rm(list=ls()[! ls() %in% c("imp.datosA", "imp.datosA2", "vdata",
"primary_event", "horizon",
"process_imp_cal_plot", "seed", "n_cores", "kfre_pi",
"imputs")])
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 3929819 209.9 7207968 385.0 7207968 385.0
Vcells 101968334 778.0 328868831 2509.1 328842219 2508.9
1.6.2 Moderate calibration: Calibration curves lowess based on subdistributional hazards
primary_event <- 1
n_internal_knots <- 5
# Seleccion del grupo: Stages 3-4----
# A 2 años----
horizon <- 2
vdata <- imp.datosA %>%
rename(pred = risk2y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_2y_metA.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_2y_metA.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue") +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_2y
# Grafico de calibracion con curvas imputadas
plot_mod0_2y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.1, color = "#38B8F7") -> plot_mod0_imp_2y
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4007492 214.1 7207968 385.0 7207968 385.0
Vcells 146986386 1121.5 328868831 2509.1 328842219 2508.9
# A 5 años----
horizon <- 5
vdata <- imp.datosA %>%
rename(pred = risk5y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_5y_metA.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_5y_metA.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue",
alpha = 0.5) +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_5y
# Grafico de calibracion con curvas imputadas
plot_mod0_5y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.3, color = "#38B8F7") -> plot_mod0_imp_5y
## Grafico final
plot_mod0_2y <- plot_mod0_2y +
labs(title = "Método A\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_5y <- plot_mod0_5y +
labs(title = "Método A\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_2y <- plot_mod0_imp_2y +
labs(title = "Método A\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_5y <- plot_mod0_imp_5y +
labs(title = "Método A\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_cal_mod0 <- plot_mod0_2y / plot_mod0_5y
plot_cal_imp_mod0 <- plot_mod0_imp_2y / plot_mod0_imp_5y
export(plot_mod0_2y, here("Data", "Tidy", "plot_metA_2y.rds"))
export(plot_mod0_5y, here("Data", "Tidy", "plot_metA_5y.rds"))
export(plot_cal_mod0, here("Data", "Tidy", "plot_cal_metA.rds"))
export(plot_mod0_imp_2y, here("Data", "Tidy", "plot_metA_imp_2y.rds"))
export(plot_mod0_imp_5y, here("Data", "Tidy", "plot_metA_imp_5y.rds"))
export(plot_cal_imp_mod0, here("Data", "Tidy", "plot_cal_imp_metA.rds"))
ggsave(filename = "Plot_Calibration_imputed_metA.png",
device = "png",
plot = plot_cal_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
ggsave(filename = "Plot_Calibration_imputed_estabilidad_metA.png",
device = "png",
plot = plot_cal_imp_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4083426 218.1 7207968 385.0 7207968 385.0
Vcells 159154711 1214.3 398349258 3039.2 398349258 3039.2
knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_metA.png"))knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_estabilidad_metA.png"))1.7 Metodo B: Reestimar coeficientes mediante Cox
source(here("Code", "source", "kfre_pi.R"))
source(here("Code", "source", "kfre_pr.R"))
source(here("Code", "source", "oe_ratio.R"))
source(here("Code", "source", "calibration_intercept.R"))
source(here("Code", "source", "calibration_slope.R"))
source(here("Code", "source", "auc.R"))
source(here("Code", "source", "auc_brier_boot.R"))
source(here("Code", "source", "validate.mids.R"))
source(here("Code", "source", "pool.validate.mids.R"))
source(here("Code", "source", "pool.auc.mids.R"))
source(here("Code", "source", "process_imp_cal_plot.R"))
source(here("Code", "source", "predict.mira.R"))
source(here("Code", "source", "performance_measures.R"))
source(here("Code", "source", "tidy_performance_stack.R"))
source(here("Code", "source", "tidy_pool.R"))
source(here("Code", "source", "process_imp_cal_plot2.R"))
source(here("Code", "source", "print_equation.R")) df_recal_metB <- import(here("Data", "Tidy", "equations", "df_recal_modB.rds"))
df_recal_metB2y <- df_recal_metB |>
filter(year == 2) |>
select(-year) |>
rename(st0_imp2y = st0_imp,
fc_coef_imp2y = fc_coef_imp)
df_recal_metB5y <- df_recal_metB |>
filter(year == 5) |>
select(-year) |>
rename(st0_imp5y = st0_imp,
fc_coef_imp5y = fc_coef_imp)
rm(df_recal_metB)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4087395 218.3 7207968 385.0 7207968 385.0
Vcells 159152528 1214.3 398349258 3039.2 398349258 3039.2
imp.datosA <- imp.datosA2 |>
left_join(df_recal_metB2y, by = ".imp") |>
left_join(df_recal_metB5y, by = ".imp") |>
mutate(eventdf = factor(eventd),
risk2y = 1 - st0_imp2y ^ exp(fc_coef_imp2y * kfre_pi(imp.datosA2)),
risk5y = 1 - st0_imp5y ^ exp(fc_coef_imp5y * kfre_pi(imp.datosA2))) |>
select(.imp, .id, time, eventd, eventdf, risk2y, risk5y)
rm(df_recal_metB2y, df_recal_metB5y)head(imp.datosA)1.7.1 Calibration and Discrimination Measures
future::plan("multisession", workers = n_cores)
results_stack3a4_2y <- tidy_performance_stack(imp.datosA,
horizon = 2,
primary_event = 1,
pred = "risk2y",
seed = seed,
n_cores = n_cores)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088101 218.4 7207968 385.0 7207968 385.0
Vcells 171170734 1306.0 398349258 3039.2 398349258 3039.2
rio::export(results_stack3a4_2y , here("Data", "Tidy",
"res_valext_kfre_stack3a4_2y_metB.rds"))
future::plan("multisession", workers = n_cores)
results_stack3a4_5y <- tidy_performance_stack(imp.datosA,
horizon = 5,
primary_event = 1,
pred = "risk5y",
seed = seed,
n_cores = n_cores)
rio::export(results_stack3a4_5y, here("Data", "Tidy",
"res_valext_kfre_stack3a4_5y_metB.rds"))
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4087889 218.4 7207968 385.0 7207968 385.0
Vcells 171173949 1306.0 398349258 3039.2 398349258 3039.2
res_pool1 <- tidy_pool(results_stack3a4_2y)
res_pool1 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0281081 | NaN | NaN | NA | NaN | 0.0000000 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0273046 | 0.0254293 | 0.0291799 | 0.0000000 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | -0.0289994 | -0.0978855 | 0.0398868 | 0.4093044 | 0.0012279 | 0.0000073 | 0.0012352 | 30030 | 29535.812 | 0.0059726 | 0.0059371 | 0.0000675 | 30031 |
| OE difference | -0.0008035 | -0.0026848 | 0.0010777 | 0.4025053 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 29487.469 | 0.0063300 | 0.0062902 | 0.0000676 | 30031 |
| Calibration Intercept | -0.0526479 | -0.1503187 | 0.0450228 | 0.2907181 | 0.0023162 | 0.0001649 | 0.0024828 | 30030 | 12319.520 | 0.0719226 | 0.0670968 | 0.0001569 | 30031 |
| Calibration Slope | -0.1599919 | -0.2267812 | -0.0932027 | 0.0000027 | 0.0009830 | 0.0001757 | 0.0011605 | 30029 | 3631.124 | 0.1804700 | 0.1528798 | 0.0005083 | 30031 |
| Logit AUC | 2.2408323 | 2.1134404 | 2.3682242 | 0.0000000 | 0.0035868 | 0.0006288 | 0.0042219 | 30030 | 3735.045 | 0.1770471 | 0.1504163 | 0.0004948 | 30031 |
| Brier | 0.0229702 | 0.0215023 | 0.0244380 | 0.0000000 | 0.0000005 | 0.0000000 | 0.0000006 | 30030 | 16502.247 | 0.0529381 | 0.0502765 | 0.0001181 | 30031 |
res_pool2 <- tidy_pool(results_stack3a4_5y)
res_pool2 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0522702 | NaN | NaN | NA | NaN | 0.0000000 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0476187 | 0.0450853 | 0.0501521 | 0.0000000 | 0.0000017 | 0.0000000 | 0.0000017 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | -0.0931965 | -0.1467136 | -0.0396795 | 0.0006427 | 0.0007368 | 0.0000087 | 0.0007455 | 30030 | 28499.275 | 0.0118740 | 0.0117347 | 0.0000698 | 30031 |
| OE difference | -0.0046515 | -0.0072030 | -0.0021000 | 0.0003531 | 0.0000017 | 0.0000000 | 0.0000017 | 30030 | 27943.357 | 0.0143016 | 0.0140999 | 0.0000711 | 30031 |
| Calibration Intercept | -0.1294301 | -0.2049456 | -0.0539146 | 0.0007836 | 0.0013454 | 0.0001372 | 0.0014840 | 30030 | 8009.119 | 0.1030272 | 0.0934040 | 0.0002380 | 30031 |
| Calibration Slope | -0.1568453 | -0.2073916 | -0.1062989 | 0.0000000 | 0.0005815 | 0.0000824 | 0.0006648 | 30029 | 5089.568 | 0.1431575 | 0.1252299 | 0.0003681 | 30031 |
| Logit AUC | 2.0545824 | 1.9535722 | 2.1555925 | 0.0000000 | 0.0022533 | 0.0003970 | 0.0026543 | 30030 | 3706.552 | 0.1779701 | 0.1510820 | 0.0004984 | 30031 |
| Brier | 0.0370046 | 0.0351057 | 0.0389034 | 0.0000000 | 0.0000009 | 0.0000001 | 0.0000009 | 30030 | 8145.761 | 0.1016991 | 0.0923111 | 0.0002341 | 30031 |
tab_res_2y <- res_pool1 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "2 years")
tab_res_5y <- res_pool2 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "5 years")
tab_res0 <- tab_res_2y |>
bind_rows(tab_res_5y)
tab_res0 |>
as_grouped_data(groups = "year") |>
as_grouped_data(groups = "grupo") |>
flextable::as_flextable(hide_grouplabel = TRUE) |>
autofit() |>
set_header_labels(
year = "Time horizon",
term = "Performance measure",
measures = "Method B"
) |>
bold(j = 1) |>
set_caption("Table. Performance measures of KFRE in the external dataset of patients with CKD Stages 3a-4") |>
theme_booktabs() |>
bold(bold = TRUE, part = "header") -> table_perf_final
table_perf_final %>%
flextable::save_as_docx(path = here("Tables/Table_Imputed_Performance_metB.docx"))
table_perf_finalTime horizon | Performance measure | Method B |
|---|---|---|
2 years | ||
Calibration | ||
Average predicted risk | 2.81% | |
Overall observerd risk | 2.73% (2.54% to 2.92%) | |
OE ratio | 0.97 (0.91 to 1.04) | |
OE difference | -0.08% (-0.27% to 0.11%) | |
Calibration Intercept | -0.05 (-0.15 to 0.05) | |
Calibration Slope | -0.16 (-0.23 to -0.09) | |
Discrimination | ||
AUC | 0.9 (0.89 to 0.91) | |
Overall performance | ||
Brier | 0.02 (0.02 to 0.02) | |
5 years | ||
Calibration | ||
Average predicted risk | 5.23% | |
Overall observerd risk | 4.76% (4.51% to 5.02%) | |
OE ratio | 0.91 (0.86 to 0.96) | |
OE difference | -0.47% (-0.72% to -0.21%) | |
Calibration Intercept | -0.13 (-0.2 to -0.05) | |
Calibration Slope | -0.16 (-0.21 to -0.11) | |
Discrimination | ||
AUC | 0.89 (0.88 to 0.9) | |
Overall performance | ||
Brier | 0.04 (0.04 to 0.04) | |
rm(list=ls()[! ls() %in% c("imp.datosA","imp.datosA2", "vdata",
"primary_event", "horizon",
"process_imp_cal_plot", "seed", "n_cores", "kfre_pi",
"imputs")])
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4082407 218.1 7207968 385.0 7207968 385.0
Vcells 140720942 1073.7 398349258 3039.2 398349258 3039.2
1.7.2 Moderate calibration: Calibration curves lowess based on subdistributional hazards
primary_event <- 1
n_internal_knots <- 5
# Seleccion del grupo: Stages 3-4----
# A 2 años----
horizon <- 2
vdata <- imp.datosA %>%
rename(pred = risk2y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_2y_metB.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_2y_metB.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue") +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_2y
# Grafico de calibracion con curvas imputadas
plot_mod0_2y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.1, color = "#38B8F7") -> plot_mod0_imp_2y
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4087878 218.4 7207968 385.0 7207968 385.0
Vcells 147163516 1122.8 398349258 3039.2 398349258 3039.2
# A 5 años----
horizon <- 5
vdata <- imp.datosA %>%
rename(pred = risk5y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_5y_metB.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_5y_metB.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue",
alpha = 0.5) +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_5y
# Grafico de calibracion con curvas imputadas
plot_mod0_5y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.3, color = "#38B8F7") -> plot_mod0_imp_5y
## Grafico final
plot_mod0_2y <- plot_mod0_2y +
labs(title = "Método B\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_5y <- plot_mod0_5y +
labs(title = "Método B\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_2y <- plot_mod0_imp_2y +
labs(title = "Método B\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_5y <- plot_mod0_imp_5y +
labs(title = "Método B\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_cal_mod0 <- plot_mod0_2y / plot_mod0_5y
plot_cal_imp_mod0 <- plot_mod0_imp_2y / plot_mod0_imp_5y
export(plot_mod0_2y, here("Data", "Tidy", "plot_metB_2y.rds"))
export(plot_mod0_5y, here("Data", "Tidy", "plot_metB_5y.rds"))
export(plot_cal_mod0, here("Data", "Tidy", "plot_cal_metB.rds"))
export(plot_mod0_imp_2y, here("Data", "Tidy", "plot_metB_imp_2y.rds"))
export(plot_mod0_imp_5y, here("Data", "Tidy", "plot_metB_imp_5y.rds"))
export(plot_cal_imp_mod0, here("Data", "Tidy", "plot_cal_imp_metB.rds"))
ggsave(filename = "Plot_Calibration_imputed_metB.png",
device = "png",
plot = plot_cal_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
ggsave(filename = "Plot_Calibration_imputed_estabilidad_metB.png",
device = "png",
plot = plot_cal_imp_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4086853 218.3 7207968 385.0 7207968 385.0
Vcells 159175274 1214.5 400182495 3053.2 400182495 3053.2
knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_metB.png"))knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_estabilidad_metB.png"))1.8 Metodo C: Reestimar riesgo basal usando Cause-specific Hazard Models
source(here("Code", "source", "kfre_pi.R"))
source(here("Code", "source", "kfre_pr.R"))
source(here("Code", "source", "oe_ratio.R"))
source(here("Code", "source", "calibration_intercept.R"))
source(here("Code", "source", "calibration_slope.R"))
source(here("Code", "source", "auc.R"))
source(here("Code", "source", "auc_brier_boot.R"))
source(here("Code", "source", "validate.mids.R"))
source(here("Code", "source", "pool.validate.mids.R"))
source(here("Code", "source", "pool.auc.mids.R"))
source(here("Code", "source", "process_imp_cal_plot.R"))
source(here("Code", "source", "predict.mira.R"))
source(here("Code", "source", "performance_measures.R"))
source(here("Code", "source", "tidy_performance_stack.R"))
source(here("Code", "source", "tidy_pool.R"))
source(here("Code", "source", "process_imp_cal_plot2.R"))
source(here("Code", "source", "print_equation.R")) df_recal_metC <- import(here("Data", "Tidy", "equations", "df_recal_modC.rds"))
df_recal_metC2y <- df_recal_metC |>
filter(year == 2) |>
select(-year) |>
rename(st0_imp2y = st0_imp,
fc_coef_imp2y = fc_coef_imp)
df_recal_metC5y <- df_recal_metC |>
filter(year == 5) |>
select(-year) |>
rename(st0_imp5y = st0_imp,
fc_coef_imp5y = fc_coef_imp)
rm(df_recal_metC)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088096 218.4 7207968 385.0 7207968 385.0
Vcells 159164900 1214.4 400182495 3053.2 400182495 3053.2
imp.datosA <- imp.datosA2 |>
left_join(df_recal_metC2y, by = ".imp") |>
left_join(df_recal_metC5y, by = ".imp") |>
mutate(eventdf = factor(eventd),
risk2y = 1 - st0_imp2y ^ exp(fc_coef_imp2y * kfre_pi(imp.datosA2)),
risk5y = 1 - st0_imp5y ^ exp(fc_coef_imp5y * kfre_pi(imp.datosA2))) |>
select(.imp, .id, time, eventd, eventdf, risk2y, risk5y)
rm(df_recal_metC2y, df_recal_metC5y)head(imp.datosA)1.8.1 Calibration and Discrimination Measures
future::plan("multisession", workers = n_cores)
results_stack3a4_2y <- tidy_performance_stack(imp.datosA,
horizon = 2,
primary_event = 1,
pred = "risk2y",
seed = seed,
n_cores = n_cores)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088271 218.4 7207968 385.0 7207968 385.0
Vcells 171180740 1306.1 400182495 3053.2 400182495 3053.2
rio::export(results_stack3a4_2y , here("Data", "Tidy",
"res_valext_kfre_stack3a4_2y_metC.rds"))
future::plan("multisession", workers = n_cores)
results_stack3a4_5y <- tidy_performance_stack(imp.datosA,
horizon = 5,
primary_event = 1,
pred = "risk5y",
seed = seed,
n_cores = n_cores)
rio::export(results_stack3a4_5y, here("Data", "Tidy",
"res_valext_kfre_stack3a4_5y_metC.rds"))
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088345 218.4 7207968 385.0 7207968 385.0
Vcells 171184436 1306.1 400182495 3053.2 400182495 3053.2
res_pool1 <- tidy_pool(results_stack3a4_2y)
res_pool1 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0246722 | NaN | NaN | NA | NaN | 0.0000000 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0273046 | 0.0254293 | 0.0291799 | 0.0000000 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | 0.1014030 | 0.0313286 | 0.1714775 | 0.0045673 | 0.0012279 | 0.0000498 | 0.0012781 | 30030 | 19885.008 | 0.0409386 | 0.0393285 | 0.0000986 | 30031 |
| OE difference | 0.0026324 | 0.0007259 | 0.0045389 | 0.0068087 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 22189.845 | 0.0335540 | 0.0324646 | 0.0000887 | 30031 |
| Calibration Intercept | -0.3736795 | -0.5054974 | -0.2418615 | 0.0000000 | 0.0034786 | 0.0010281 | 0.0045170 | 30030 | 1732.977 | 0.2985036 | 0.2298827 | 0.0010197 | 30031 |
| Calibration Slope | -0.3778972 | -0.4304318 | -0.3253627 | 0.0000000 | 0.0005392 | 0.0001764 | 0.0007173 | 30029 | 1498.875 | 0.3303551 | 0.2483210 | 0.0011663 | 30031 |
| Logit AUC | 2.2408323 | 2.1134404 | 2.3682242 | 0.0000000 | 0.0035868 | 0.0006288 | 0.0042219 | 30030 | 3735.045 | 0.1770471 | 0.1504163 | 0.0004948 | 30031 |
| Brier | 0.0238678 | 0.0223098 | 0.0254258 | 0.0000000 | 0.0000006 | 0.0000001 | 0.0000006 | 30030 | 8623.332 | 0.0973001 | 0.0886722 | 0.0002216 | 30031 |
res_pool2 <- tidy_pool(results_stack3a4_5y)
res_pool2 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0426431 | NaN | NaN | NA | NaN | 0.0000001 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0476187 | 0.0450853 | 0.0501521 | 0.0000000 | 0.0000017 | 0.0000000 | 0.0000017 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | 0.1103923 | 0.0549497 | 0.1658349 | 0.0000956 | 0.0007368 | 0.0000626 | 0.0008000 | 30030 | 10073.240 | 0.0858295 | 0.0790451 | 0.0001906 | 30031 |
| OE difference | 0.0049757 | 0.0023561 | 0.0075952 | 0.0001975 | 0.0000017 | 0.0000001 | 0.0000018 | 30030 | 12870.036 | 0.0690142 | 0.0645587 | 0.0001503 | 30031 |
| Calibration Intercept | -0.2282797 | -0.3302904 | -0.1262690 | 0.0000123 | 0.0019600 | 0.0007363 | 0.0027036 | 30030 | 1234.433 | 0.3794003 | 0.2750473 | 0.0013940 | 30031 |
| Calibration Slope | -0.3755688 | -0.4164766 | -0.3346610 | 0.0000000 | 0.0003190 | 0.0001147 | 0.0004348 | 30029 | 1311.106 | 0.3632975 | 0.2664844 | 0.0013192 | 30031 |
| Logit AUC | 2.0545824 | 1.9535722 | 2.1555925 | 0.0000000 | 0.0022533 | 0.0003970 | 0.0026543 | 30030 | 3706.552 | 0.1779701 | 0.1510820 | 0.0004984 | 30031 |
| Brier | 0.0381672 | 0.0360744 | 0.0402600 | 0.0000000 | 0.0000010 | 0.0000001 | 0.0000011 | 30030 | 4815.814 | 0.1487632 | 0.1294986 | 0.0003882 | 30031 |
tab_res_2y <- res_pool1 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "2 years")
tab_res_5y <- res_pool2 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "5 years")
tab_res0 <- tab_res_2y |>
bind_rows(tab_res_5y)
tab_res0 |>
as_grouped_data(groups = "year") |>
as_grouped_data(groups = "grupo") |>
flextable::as_flextable(hide_grouplabel = TRUE) |>
autofit() |>
set_header_labels(
year = "Time horizon",
term = "Performance measure",
measures = "Method C"
) |>
bold(j = 1) |>
set_caption("Table. Performance measures of KFRE in the external dataset of patients with CKD Stages 3a-4") |>
theme_booktabs() |>
bold(bold = TRUE, part = "header") -> table_perf_final
table_perf_final %>%
flextable::save_as_docx(path = here("Tables/Table_Imputed_Performance_metC.docx"))
table_perf_finalTime horizon | Performance measure | Method C |
|---|---|---|
2 years | ||
Calibration | ||
Average predicted risk | 2.47% | |
Overall observerd risk | 2.73% (2.54% to 2.92%) | |
OE ratio | 1.11 (1.03 to 1.19) | |
OE difference | 0.26% (0.07% to 0.45%) | |
Calibration Intercept | -0.37 (-0.51 to -0.24) | |
Calibration Slope | -0.38 (-0.43 to -0.33) | |
Discrimination | ||
AUC | 0.9 (0.89 to 0.91) | |
Overall performance | ||
Brier | 0.02 (0.02 to 0.03) | |
5 years | ||
Calibration | ||
Average predicted risk | 4.26% | |
Overall observerd risk | 4.76% (4.51% to 5.02%) | |
OE ratio | 1.12 (1.06 to 1.18) | |
OE difference | 0.5% (0.24% to 0.76%) | |
Calibration Intercept | -0.23 (-0.33 to -0.13) | |
Calibration Slope | -0.38 (-0.42 to -0.33) | |
Discrimination | ||
AUC | 0.89 (0.88 to 0.9) | |
Overall performance | ||
Brier | 0.04 (0.04 to 0.04) | |
rm(list=ls()[! ls() %in% c("imp.datosA", "imp.datosA2", "vdata",
"primary_event", "horizon",
"process_imp_cal_plot", "seed", "n_cores", "kfre_pi",
"imputs")])
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4082605 218.1 7207968 385.0 7207968 385.0
Vcells 140730982 1073.7 400182495 3053.2 400182495 3053.2
1.8.2 Moderate calibration: Calibration curves lowess based on subdistributional hazards
primary_event <- 1
n_internal_knots <- 5
# Seleccion del grupo: Stages 3-4----
# A 2 años----
horizon <- 2
vdata <- imp.datosA %>%
rename(pred = risk2y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_2y_metC.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_2y_metC.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue") +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_2y
# Grafico de calibracion con curvas imputadas
plot_mod0_2y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.1, color = "#38B8F7") -> plot_mod0_imp_2y
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4087943 218.4 7207968 385.0 7207968 385.0
Vcells 147173331 1122.9 400182495 3053.2 400182495 3053.2
# A 5 años----
horizon <- 5
vdata <- imp.datosA %>%
rename(pred = risk5y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_5y_metC.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_5y_metC.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue",
alpha = 0.5) +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_5y
# Grafico de calibracion con curvas imputadas
plot_mod0_5y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.3, color = "#38B8F7") -> plot_mod0_imp_5y
## Grafico final
plot_mod0_2y <- plot_mod0_2y +
labs(title = "Método C\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_5y <- plot_mod0_5y +
labs(title = "Método C\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_2y <- plot_mod0_imp_2y +
labs(title = "Método C\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_5y <- plot_mod0_imp_5y +
labs(title = "Método C\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_cal_mod0 <- plot_mod0_2y / plot_mod0_5y
plot_cal_imp_mod0 <- plot_mod0_imp_2y / plot_mod0_imp_5y
export(plot_mod0_2y, here("Data", "Tidy", "plot_metC_2y.rds"))
export(plot_mod0_5y, here("Data", "Tidy", "plot_metC_5y.rds"))
export(plot_cal_mod0, here("Data", "Tidy", "plot_cal_metC.rds"))
export(plot_mod0_imp_2y, here("Data", "Tidy", "plot_metC_imp_2y.rds"))
export(plot_mod0_imp_5y, here("Data", "Tidy", "plot_metC_imp_5y.rds"))
export(plot_cal_imp_mod0, here("Data", "Tidy", "plot_cal_imp_metC.rds"))
ggsave(filename = "Plot_Calibration_imputed_metC.png",
device = "png",
plot = plot_cal_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
ggsave(filename = "Plot_Calibration_imputed_estabilidad_metC.png",
device = "png",
plot = plot_cal_imp_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4087052 218.3 7207968 385.0 7207968 385.0
Vcells 159185313 1214.5 401556731 3063.7 401556731 3063.7
knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_metC.png"))knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_estabilidad_metC.png"))1.9 Metodo D: Reestimar coeficientes mediante Cause-specific Hazard Models
source(here("Code", "source", "kfre_pi.R"))
source(here("Code", "source", "kfre_pr.R"))
source(here("Code", "source", "oe_ratio.R"))
source(here("Code", "source", "calibration_intercept.R"))
source(here("Code", "source", "calibration_slope.R"))
source(here("Code", "source", "auc.R"))
source(here("Code", "source", "auc_brier_boot.R"))
source(here("Code", "source", "validate.mids.R"))
source(here("Code", "source", "pool.validate.mids.R"))
source(here("Code", "source", "pool.auc.mids.R"))
source(here("Code", "source", "process_imp_cal_plot.R"))
source(here("Code", "source", "predict.mira.R"))
source(here("Code", "source", "performance_measures.R"))
source(here("Code", "source", "tidy_performance_stack.R"))
source(here("Code", "source", "tidy_pool.R"))
source(here("Code", "source", "process_imp_cal_plot2.R"))
source(here("Code", "source", "print_equation.R")) df_recal_metD <- import(here("Data", "Tidy", "equations", "df_recal_modD.rds"))
df_recal_metD2y <- df_recal_metD |>
filter(year == 2) |>
select(-year) |>
rename(st0_imp2y = st0_imp,
fc_coef_imp2y = fc_coef_imp)
df_recal_metD5y <- df_recal_metD |>
filter(year == 5) |>
select(-year) |>
rename(st0_imp5y = st0_imp,
fc_coef_imp5y = fc_coef_imp)
rm(df_recal_metD)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088295 218.4 7207968 385.0 7207968 385.0
Vcells 159174941 1214.5 401556731 3063.7 401556731 3063.7
imp.datosA <- imp.datosA2 |>
left_join(df_recal_metD2y, by = ".imp") |>
left_join(df_recal_metD5y, by = ".imp") |>
mutate(eventdf = factor(eventd),
risk2y = 1 - st0_imp2y ^ exp(fc_coef_imp2y * kfre_pi(imp.datosA2)),
risk5y = 1 - st0_imp5y ^ exp(fc_coef_imp5y * kfre_pi(imp.datosA2))) |>
select(.imp, .id, time, eventd, eventdf, risk2y, risk5y)
rm(df_recal_metD2y, df_recal_metD5y)head(imp.datosA)1.9.1 Calibration and Discrimination Measures
future::plan("multisession", workers = n_cores)
results_stack3a4_2y <- tidy_performance_stack(imp.datosA,
horizon = 2,
primary_event = 1,
pred = "risk2y",
seed = seed,
n_cores = n_cores)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088240 218.4 7207968 385.0 7207968 385.0
Vcells 171190403 1306.1 401556731 3063.7 401556731 3063.7
rio::export(results_stack3a4_2y , here("Data", "Tidy",
"res_valext_kfre_stack3a4_2y_metD.rds"))
future::plan("multisession", workers = n_cores)
results_stack3a4_5y <- tidy_performance_stack(imp.datosA,
horizon = 5,
primary_event = 1,
pred = "risk5y",
seed = seed,
n_cores = n_cores)
rio::export(results_stack3a4_5y, here("Data", "Tidy",
"res_valext_kfre_stack3a4_5y_metD.rds"))
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088293 218.4 7207968 385.0 7207968 385.0
Vcells 171194065 1306.2 401556731 3063.7 401556731 3063.7
res_pool1 <- tidy_pool(results_stack3a4_2y)
res_pool1 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0270440 | NaN | NaN | NA | NaN | 0.0000000 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0273046 | 0.0254293 | 0.0291799 | 0.0000000 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | 0.0095915 | -0.0592998 | 0.0784828 | 0.7849385 | 0.0012279 | 0.0000074 | 0.0012354 | 30030 | 29515.649 | 0.0061234 | 0.0060862 | 0.0000675 | 30031 |
| OE difference | 0.0002605 | -0.0016204 | 0.0021415 | 0.7860096 | 0.0000009 | 0.0000000 | 0.0000009 | 30030 | 29530.865 | 0.0060098 | 0.0059739 | 0.0000675 | 30031 |
| Calibration Intercept | -0.0094101 | -0.1070162 | 0.0881960 | 0.8501139 | 0.0023162 | 0.0001617 | 0.0024796 | 30030 | 12583.365 | 0.0705086 | 0.0658646 | 0.0001537 | 30031 |
| Calibration Slope | -0.1599914 | -0.2267805 | -0.0932022 | 0.0000027 | 0.0009830 | 0.0001756 | 0.0011604 | 30029 | 3631.310 | 0.1804638 | 0.1528753 | 0.0005082 | 30031 |
| Logit AUC | 2.2408323 | 2.1134404 | 2.3682242 | 0.0000000 | 0.0035868 | 0.0006288 | 0.0042219 | 30030 | 3735.045 | 0.1770471 | 0.1504163 | 0.0004948 | 30031 |
| Brier | 0.0229607 | 0.0214844 | 0.0244369 | 0.0000000 | 0.0000005 | 0.0000000 | 0.0000006 | 30030 | 16955.342 | 0.0512092 | 0.0487146 | 0.0001151 | 30031 |
res_pool2 <- tidy_pool(results_stack3a4_5y)
res_pool2 |>
kbl() |>
kable_classic(full_width = T, html_font = "Cambria")| term | estimate | ll | ul | pval | ubar | b | t | dfcom | df | riv | lambda | fmi | n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Average predicted risk | 0.0470960 | NaN | NaN | NA | NaN | 0.0000000 | NaN | 30030 | NA | NaN | NaN | NaN | 30031 |
| Overall observerd risk | 0.0476187 | 0.0450853 | 0.0501521 | 0.0000000 | 0.0000017 | 0.0000000 | 0.0000017 | 30030 | 30030.000 | 0.0000000 | 0.0000000 | 0.0000666 | 30031 |
| Log OE ratio | 0.0110421 | -0.0424854 | 0.0645696 | 0.6859700 | 0.0007368 | 0.0000090 | 0.0007458 | 30030 | 28413.190 | 0.0122698 | 0.0121211 | 0.0000700 | 30031 |
| OE difference | 0.0005227 | -0.0020259 | 0.0030713 | 0.6876847 | 0.0000017 | 0.0000000 | 0.0000017 | 30030 | 28472.085 | 0.0120000 | 0.0118577 | 0.0000698 | 30031 |
| Calibration Intercept | -0.0039685 | -0.0793289 | 0.0713919 | 0.9177852 | 0.0013454 | 0.0001312 | 0.0014780 | 30030 | 8487.042 | 0.0985189 | 0.0896834 | 0.0002250 | 30031 |
| Calibration Slope | -0.1568453 | -0.2073916 | -0.1062989 | 0.0000000 | 0.0005815 | 0.0000824 | 0.0006648 | 30029 | 5089.568 | 0.1431575 | 0.1252299 | 0.0003681 | 30031 |
| Logit AUC | 2.0545824 | 1.9535722 | 2.1555925 | 0.0000000 | 0.0022533 | 0.0003970 | 0.0026543 | 30030 | 3706.552 | 0.1779701 | 0.1510820 | 0.0004984 | 30031 |
| Brier | 0.0369244 | 0.0350041 | 0.0388447 | 0.0000000 | 0.0000009 | 0.0000001 | 0.0000010 | 30030 | 9129.116 | 0.0930076 | 0.0850933 | 0.0002097 | 30031 |
tab_res_2y <- res_pool1 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "2 years")
tab_res_5y <- res_pool2 |>
select(term, estimate, ll, ul) |>
mutate(
across(c(estimate, ll, ul), ~ if_else(term == "Log OE ratio", exp(.x), .x)),
across(c(estimate, ll, ul), ~ if_else(term == "Logit AUC", exp(.x) / (1 + exp(.x)), .x)),
term = if_else(term == "Log OE ratio", "OE ratio", term),
term = if_else(term == "Logit AUC", "AUC", term),
across(c(estimate, ll, ul), ~ if_else(term %in%
c("Average predicted risk",
"Overall observerd risk",
"OE difference"), 100 * .x, .x)),
across(c(estimate, ll, ul), ~ round(.x, 2)),
measures = case_when(term == "Average predicted risk" ~ str_glue("{estimate}%"),
term %in% c("Overall observerd risk", "OE difference") ~ str_glue("{estimate}% ({ll}% to {ul}%)"),
TRUE ~ str_glue("{estimate} ({ll} to {ul})")
)
) |>
select(term, measures) |>
mutate(grupo = c(rep("Calibration", 6), "Discrimination", "Overall performance"),
year = "5 years")
tab_res0 <- tab_res_2y |>
bind_rows(tab_res_5y)
tab_res0 |>
as_grouped_data(groups = "year") |>
as_grouped_data(groups = "grupo") |>
flextable::as_flextable(hide_grouplabel = TRUE) |>
autofit() |>
set_header_labels(
year = "Time horizon",
term = "Performance measure",
measures = "Method D"
) |>
bold(j = 1) |>
set_caption("Table. Performance measures of KFRE in the external dataset of patients with CKD Stages 3a-4") |>
theme_booktabs() |>
bold(bold = TRUE, part = "header") -> table_perf_final
table_perf_final %>%
flextable::save_as_docx(path = here("Tables/Table_Imputed_Performance_metD.docx"))
table_perf_finalTime horizon | Performance measure | Method D |
|---|---|---|
2 years | ||
Calibration | ||
Average predicted risk | 2.7% | |
Overall observerd risk | 2.73% (2.54% to 2.92%) | |
OE ratio | 1.01 (0.94 to 1.08) | |
OE difference | 0.03% (-0.16% to 0.21%) | |
Calibration Intercept | -0.01 (-0.11 to 0.09) | |
Calibration Slope | -0.16 (-0.23 to -0.09) | |
Discrimination | ||
AUC | 0.9 (0.89 to 0.91) | |
Overall performance | ||
Brier | 0.02 (0.02 to 0.02) | |
5 years | ||
Calibration | ||
Average predicted risk | 4.71% | |
Overall observerd risk | 4.76% (4.51% to 5.02%) | |
OE ratio | 1.01 (0.96 to 1.07) | |
OE difference | 0.05% (-0.2% to 0.31%) | |
Calibration Intercept | 0 (-0.08 to 0.07) | |
Calibration Slope | -0.16 (-0.21 to -0.11) | |
Discrimination | ||
AUC | 0.89 (0.88 to 0.9) | |
Overall performance | ||
Brier | 0.04 (0.04 to 0.04) | |
rm(list=ls()[! ls() %in% c("imp.datosA", "imp.datosA2", "vdata",
"primary_event", "horizon",
"process_imp_cal_plot", "seed", "n_cores", "kfre_pi",
"imputs")])
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4082805 218.1 7207968 385.0 7207968 385.0
Vcells 140741039 1073.8 401556731 3063.7 401556731 3063.7
1.9.2 Moderate calibration: Calibration curves lowess based on subdistributional hazards
primary_event <- 1
n_internal_knots <- 5
# Seleccion del grupo: Stages 3-4----
# A 2 años----
horizon <- 2
vdata <- imp.datosA %>%
rename(pred = risk2y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_2y_metD.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_2y_metD.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue") +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_2y
# Grafico de calibracion con curvas imputadas
plot_mod0_2y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.1, color = "#38B8F7") -> plot_mod0_imp_2y
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4088152 218.4 7207968 385.0 7207968 385.0
Vcells 147183407 1123.0 401556731 3063.7 401556731 3063.7
# A 5 años----
horizon <- 5
vdata <- imp.datosA %>%
rename(pred = risk5y) |>
select(.imp, .id, time, eventd, pred) |>
mutate(cll_pred = log(-log(1 - pred)))
rcs_vdata <- ns(vdata$cll_pred, df = n_internal_knots + 1)
colnames(rcs_vdata) <- paste0("basisf_", colnames(rcs_vdata))
knots <- attr(rcs_vdata, "knots")
bound.knots <- attr(rcs_vdata, "Boundary.knots")
pp <- seq(min(vdata$pred), max(vdata$pred), length.out = 1000)
cll_pp <- log(-log(1 - pp))
rcs_cll_pp <- ns(cll_pp, knots = knots, Boundary.knots = bound.knots)
colnames(rcs_cll_pp) <- paste0("basisf_", colnames(rcs_cll_pp))
vdata_bis_pp <- cbind(pp, as.data.frame(rcs_cll_pp))
future::plan("multisession", workers = n_cores)
subdist_df_imp <- future_map(1:max(vdata$.imp),
process_imp_cal_plot,
vdata = vdata,
primary_event = primary_event,
horizon = horizon,
type = "subdist_hazard",
n_internal_knots = n_internal_knots,
vdata_bis_pp,
.options = furrr_options(seed = seed,
packages = c("riskRegression",
"survival",
"splines",
"cmprsk",
"tidyverse")),
.progress = TRUE)[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
[1] "basisf_1" "basisf_2" "basisf_3" "basisf_4" "basisf_5" "basisf_6"
# 5 knots seems to give somewhat equivalent graph to pseudo method with bw = 0.05
subdist_df_imp_obs <- subdist_df_imp |>
bind_rows() |>
filter(type == "observed")
subdist_df_stack <- subdist_df_imp_obs |>
group_by(.imp) |>
mutate(deciles_risk = as.integer(quantcut(risk, seq(0, 1, by = 0.1)))) |>
group_by(.imp, deciles_risk) |>
summarise(obs_mean_imp = mean(obs),
risk_mean_imp = mean(risk)) |>
group_by(deciles_risk) |>
summarise(obs_mean_pool = mean(obs_mean_imp),
risk_mean_pool = mean(risk_mean_imp))
subdist_df_imp_fix <- subdist_df_imp |>
bind_rows() |>
filter(type == "fixed") |>
arrange(risk) |>
summarise(obs_pool = mean(obs),
.by = risk) |>
mutate(deciles_risk = quantcut(risk, seq(0, 1, by = 0.1)))
rio::export(subdist_df_imp, here("Data", "Tidy", "subdist_df_imput_3a4_5y_metD.rds"))
rio::export(subdist_df_stack, here("Data", "Tidy", "subdist_df_deciles_3a4_5y_metD.rds"))
# Grafico de calibracion
ggplot() +
geom_abline(intercept = 0, slope = 1, colour = "red", linetype = 2) +
geom_line(data = subdist_df_imp_fix,
aes(x = risk, y = obs_pool),
alpha = 0.5, color = "black") +
geom_point(data = subdist_df_stack,
aes(x = risk_mean_pool, y = obs_mean_pool),
shape = 23,
stroke = 0.1,
fill = "blue",
alpha = 0.5) +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
scale_x_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme_bw() +
labs(x = "Predicted risks", y = "Observed outcome proportions") +
# geom_rug(data = subdist_df_stack,
# aes(x = risk_mean_pool, y = obs_mean_pool),
# alpha = 0.1) +
coord_fixed(ratio = 1, expand = TRUE) -> plot_mod0_5y
# Grafico de calibracion con curvas imputadas
plot_mod0_5y +
geom_line(data = subdist_df_imp_obs,
aes(x = risk, y = obs, group = .imp),
alpha = 0.3, color = "#38B8F7") -> plot_mod0_imp_5y
## Grafico final
plot_mod0_2y <- plot_mod0_2y +
labs(title = "Método D\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_5y <- plot_mod0_5y +
labs(title = "Método D\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_2y <- plot_mod0_imp_2y +
labs(title = "Método D\n(2 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_mod0_imp_5y <- plot_mod0_imp_5y +
labs(title = "Método D\n(5 year KFRE)") +
theme(plot.title = element_text(hjust = 0.5))
plot_cal_mod0 <- plot_mod0_2y / plot_mod0_5y
plot_cal_imp_mod0 <- plot_mod0_imp_2y / plot_mod0_imp_5y
export(plot_mod0_2y, here("Data", "Tidy", "plot_metD_2y.rds"))
export(plot_mod0_5y, here("Data", "Tidy", "plot_metD_5y.rds"))
export(plot_cal_mod0, here("Data", "Tidy", "plot_cal_metD.rds"))
export(plot_mod0_imp_2y, here("Data", "Tidy", "plot_metD_imp_2y.rds"))
export(plot_mod0_imp_5y, here("Data", "Tidy", "plot_metD_imp_5y.rds"))
export(plot_cal_imp_mod0, here("Data", "Tidy", "plot_cal_imp_metD.rds"))
ggsave(filename = "Plot_Calibration_imputed_metD.png",
device = "png",
plot = plot_cal_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
ggsave(filename = "Plot_Calibration_imputed_estabilidad_metD.png",
device = "png",
plot = plot_cal_imp_mod0,
path = here("Figures"),
scale = 2,
width = 12,
height = 12,
units = "cm",
dpi = 600)
gc() used (Mb) gc trigger (Mb) max used (Mb)
Ncells 4087251 218.3 7207968 385.0 7207968 385.0
Vcells 159195375 1214.6 482095234 3678.1 481855685 3676.3
knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_metD.png"))knitr::include_graphics(here("Figures", "Plot_Calibration_imputed_estabilidad_metD.png"))1.10 Comparacion de modelos
plot_cal_metA <- import(here("Data", "Tidy", "plot_cal_metA.rds"))
plot_cal_metB <- import(here("Data", "Tidy", "plot_cal_metB.rds"))
plot_cal_metC <- import(here("Data", "Tidy", "plot_cal_metC.rds"))
plot_cal_metD <- import(here("Data", "Tidy", "plot_cal_metD.rds"))(plot_cal_metA | plot_cal_metB | plot_cal_metC | plot_cal_metD) + plot_annotation(tag_levels = "A") -> plot_comp_calib
ggsave(filename = "Plot_Compare_Methods.png",
plot = plot_comp_calib,
device = "png",
path = here("Figures"),
scale = 2.5,
width = 12,
height = 6,
units = "cm")1.11 Ticket de Reprocubilidad
sessionInfo()R version 4.3.3 (2024-02-29 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 11 x64 (build 22631)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.utf8
[2] LC_CTYPE=English_United States.utf8
[3] LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.utf8
time zone: America/Lima
tzcode source: internal
attached base packages:
[1] parallel grid splines stats graphics grDevices utils
[8] datasets methods base
other attached packages:
[1] smplot2_0.1.0 impstep_0.1.0
[3] yardstick_1.3.1 workflowsets_1.1.0
[5] workflows_1.1.4 tune_1.2.0
[7] recipes_1.0.10 parsnip_1.2.1
[9] modeldata_1.3.0 infer_1.0.7
[11] dials_1.2.1 tidymodels_1.2.0
[13] rio_1.0.1 tictoc_1.2.1
[15] ggmice_0.1.0 furrr_0.3.1
[17] future_1.33.2 ggExtra_0.10.1
[19] gtools_3.9.5 DescTools_0.99.54
[21] naniar_1.1.0 mice_3.16.0
[23] PerformanceAnalytics_2.0.4 xts_0.13.2
[25] zoo_1.8-12 VIM_6.2.2
[27] colorspace_2.1-0 janitor_2.2.0
[29] gt_0.10.1 DiagrammeR_1.0.11
[31] ggtext_0.1.2 htmltools_0.5.8
[33] devtools_2.4.5 usethis_2.2.3
[35] gghalves_0.1.4 xml2_1.3.6
[37] downlit_0.4.3 broom_1.0.5
[39] dcurves_0.4.0 glue_1.7.0
[41] labelled_2.12.0 scales_1.3.0
[43] cowplot_1.1.3 ggsci_3.0.3
[45] patchwork_1.2.0 webshot_0.5.5
[47] gridExtra_2.3 rsample_1.2.1
[49] lubridate_1.9.3 forcats_1.0.0
[51] stringr_1.5.1 dplyr_1.1.4
[53] purrr_1.0.2 readr_2.1.5
[55] tidyr_1.3.1 tibble_3.2.1
[57] tidyverse_2.0.0 boot_1.3-30
[59] gtsummary_1.7.2 flextable_0.9.5
[61] kableExtra_1.4.0 knitr_1.45
[63] plotrix_3.8-4 pec_2023.04.12
[65] prodlim_2023.08.28 pseudo_1.4.3
[67] geepack_1.3.10 KMsurv_0.1-5
[69] mstate_0.3.2 riskRegression_2023.12.21
[71] cmprsk_2.2-11 rms_6.8-0
[73] Hmisc_5.1-2 survminer_0.4.9
[75] ggpubr_0.6.0 ggplot2_3.5.0
[77] survival_3.5-8 skimr_2.1.5
[79] here_1.0.1
loaded via a namespace (and not attached):
[1] R.methodsS3_1.8.2 gld_2.6.6 pacman_0.5.1
[4] urlchecker_1.0.1 nnet_7.3-19 TH.data_1.1-2
[7] vctrs_0.6.5 png_0.1-8 digest_0.6.35
[10] shape_1.4.6.1 proxy_0.4-27 Exact_3.2
[13] httpcode_0.3.0 parallelly_1.37.1 MASS_7.3-60.0.1
[16] fontLiberation_0.1.0 httpuv_1.6.15 foreach_1.5.2
[19] withr_3.0.0 xfun_0.43 ellipsis_0.3.2
[22] memoise_2.0.1 crul_1.4.0 MatrixModels_0.5-3
[25] profvis_0.3.8 systemfonts_1.0.6 ragg_1.3.0
[28] R.oo_1.26.0 DEoptimR_1.1-3 Formula_1.2-5
[31] promises_1.2.1 httr_1.4.7 rstatix_0.7.2
[34] globals_0.16.3 rstudioapi_0.16.0 pan_1.9
[37] miniUI_0.1.1.1 generics_0.1.3 base64enc_0.1-3
[40] curl_5.2.1 repr_1.1.7 quadprog_1.5-8
[43] xtable_1.8-4 evaluate_0.23 hms_1.1.3
[46] glmnet_4.1-8 visNetwork_2.1.2 readxl_1.4.3
[49] magrittr_2.0.3 lmtest_0.9-40 snakecase_0.11.1
[52] later_1.3.2 lattice_0.22-5 future.apply_1.11.2
[55] robustbase_0.99-2 SparseM_1.81 lhs_1.1.6
[58] class_7.3-22 pillar_1.9.0 nlme_3.1-164
[61] iterators_1.0.14 GPfit_1.0-8 compiler_4.3.3
[64] stringi_1.8.3 gower_1.0.1 jomo_2.7-6
[67] minqa_1.2.6 crayon_1.5.2 abind_1.4-5
[70] haven_2.5.4 sp_2.1-3 rootSolve_1.8.2.4
[73] sandwich_3.1-0 codetools_0.2-19 multcomp_1.4-25
[76] textshaping_0.3.7 openssl_2.1.1 e1071_1.7-14
[79] lmom_3.0 mime_0.12 Rcpp_1.0.12
[82] quantreg_5.97 DiceDesign_1.10 cellranger_1.1.0
[85] gridtext_0.1.5 utf8_1.2.4 lme4_1.1-35.2
[88] fs_1.6.3 listenv_0.9.1 checkmate_2.3.1
[91] pkgbuild_1.4.4 expm_0.999-9 ggsignif_0.6.4
[94] Matrix_1.6-5 tzdb_0.4.0 visdat_0.6.0
[97] svglite_2.1.3 pkgconfig_2.0.3 tools_4.3.3
[100] cachem_1.0.8 viridisLite_0.4.2 numDeriv_2016.8-1.1
[103] fastmap_1.1.1 rmarkdown_2.26 sdamr_0.2.0
[106] mets_1.3.4 officer_0.6.5 carData_3.0-5
[109] rpart_4.1.23 farver_2.1.1 yaml_2.3.8
[112] foreign_0.8-86 cli_3.6.2 lifecycle_1.0.4
[115] askpass_1.2.0 mvtnorm_1.2-4 lava_1.8.0
[118] sessioninfo_1.2.2 backports_1.4.1 timechange_0.3.0
[121] gtable_0.3.4 jsonlite_1.8.8 mitml_0.4-5
[124] pwr_1.3-0 zip_2.3.1 ranger_0.16.0
[127] highr_0.10 polspline_1.1.24 survMisc_0.5.6
[130] R.utils_2.12.3 timeDate_4032.109 shiny_1.8.1
[133] gfonts_0.2.0 timereg_2.0.5 broom.helpers_1.14.0
[136] gdtools_0.3.7 rprojroot_2.0.4 R6_2.5.1
[139] km.ci_0.5-6 vcd_1.4-12 cluster_2.1.6
[142] pkgload_1.3.4 ipred_0.9-14 nloptr_2.0.3
[145] tidyselect_1.2.1 htmlTable_2.4.2 fontBitstreamVera_0.1.1
[148] car_3.1-2 munsell_0.5.0 laeken_0.5.3
[151] fontquiver_0.2.1 data.table_1.15.4 htmlwidgets_1.6.4
[154] RColorBrewer_1.1-3 rlang_1.1.3 uuid_1.2-0
[157] remotes_2.5.0 fansi_1.0.6 hardhat_1.3.1